package jdos.ints;

import jdos.Dosbox;
import jdos.hardware.Memory;

public class Int10_vptable {
    static private final byte[] vparams = {
        // 40x25 mode 0 and 1 crtc registers
        (byte)0x38, (byte)0x28, (byte)0x2d, (byte)0x0a, (byte)0x1f, (byte)0x06, (byte)0x19, (byte)0x1c, (byte)0x02, (byte)0x07, (byte)0x06, (byte)0x07, 0,0,0,0,
        // 80x25 mode 2 and 3 crtc registers
        (byte)0x71, (byte)0x50, (byte)0x5a, (byte)0x0a, (byte)0x1f, (byte)0x06, (byte)0x19, (byte)0x1c, (byte)0x02, (byte)0x07, (byte)0x06, (byte)0x07, 0,0,0,0,
        // graphics modes 4, 5 and 6
        (byte)0x38, (byte)0x28, (byte)0x2d, (byte)0x0a, (byte)0x7f, (byte)0x06, (byte)0x64, (byte)0x70, (byte)0x02, (byte)0x01, (byte)0x06, (byte)0x07, 0,0,0,0,
        // mode 7 MDA text
        (byte)0x61, (byte)0x50, (byte)0x52, (byte)0x0f, (byte)0x19, (byte)0x06, (byte)0x19, (byte)0x19, (byte)0x02, (byte)0x0d, (byte)0x0b, (byte)0x0c, 0,0,0,0,
        // buffer length words 2048, 4096, 16384, 16384
        (byte)0x00, (byte)0x08, (byte)0x00, (byte)0x10, (byte)0x00, (byte)0x40, (byte)0x00, (byte)0x40,
        // columns
        40, 40, 80, 80, 40, 40, 80, 80,
        // CGA mode register
        (byte)0x2c, (byte)0x28, (byte)0x2d, (byte)0x29, (byte)0x2a, (byte)0x2e, (byte)0x1e, (byte)0x29
    };


    static private final byte[] video_parameter_table_vga={
    // video parameter table for mode 0 (cga emulation)
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
    // video parameter table for mode 1 (cga emulation)
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
    // video parameter table for mode 2 (cga emulation)
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
    // video parameter table for mode 3 (cga emulation)
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
    // video parameter table for mode 4
      (byte)0x28, (byte)0x18, (byte)0x08, (byte)0x00, (byte)0x40, // bios data
      (byte)0x09, (byte)0x00, (byte)0x00, (byte)0x02, // sequencer registers
      (byte)0x63, // misc output registers
      (byte)0x2d, (byte)0x27, (byte)0x28, (byte)0x90, (byte)0x2b, (byte)0x80, (byte)0xbf, (byte)0x1f,       // crtc registers 0-7
      (byte)0x00, (byte)0xc1, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,       // crtc registers 8-15
      (byte)0x9c, (byte)0x8e, (byte)0x8f, (byte)0x14, (byte)0x00, (byte)0x96, (byte)0xb9, (byte)0xa2, (byte)0xff, // crtc registers 16-24
      (byte)0x00, (byte)0x13, (byte)0x15, (byte)0x17, (byte)0x02, (byte)0x04, (byte)0x06, (byte)0x07,       // attr registers 0-7
      (byte)0x10, (byte)0x11, (byte)0x12, (byte)0x13, (byte)0x14, (byte)0x15, (byte)0x16, (byte)0x17,       // attr registers 8-15
      (byte)0x01, (byte)0x00, (byte)0x0f, (byte)0x00, // attr registers 16-19
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x20, (byte)0x0f, (byte)0x0f, (byte)0xff, // graphics registers 0-8
    // video parameter table for mode 5
      (byte)0x28, (byte)0x18, (byte)0x08, (byte)0x00, (byte)0x40, // bios data
      (byte)0x09, (byte)0x00, (byte)0x00, (byte)0x02, // sequencer registers
      (byte)0x63, // misc output registers
      (byte)0x2d, (byte)0x27, (byte)0x28, (byte)0x90, (byte)0x2b, (byte)0x80, (byte)0xbf, (byte)0x1f,       // crtc registers 0-7
      (byte)0x00, (byte)0xc1, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,       // crtc registers 8-15
      (byte)0x9c, (byte)0x8e, (byte)0x8f, (byte)0x14, (byte)0x00, (byte)0x96, (byte)0xb9, (byte)0xa2, (byte)0xff, // crtc registers 16-24
      (byte)0x00, (byte)0x13, (byte)0x15, (byte)0x17, (byte)0x02, (byte)0x04, (byte)0x06, (byte)0x07,       // attr registers 0-7
      (byte)0x10, (byte)0x11, (byte)0x12, (byte)0x13, (byte)0x14, (byte)0x15, (byte)0x16, (byte)0x17,       // attr registers 8-15
      (byte)0x01, (byte)0x00, (byte)0x0f, (byte)0x00, // attr registers 16-19
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x20, (byte)0x0f, (byte)0x0f, (byte)0xff, // graphics registers 0-8
    // video parameter table for mode 6
      (byte)0x50, (byte)0x18, (byte)0x08, (byte)0x00, (byte)0x40, // bios data
      (byte)0x09, (byte)0x0f, (byte)0x00, (byte)0x02, // sequencer registers
      (byte)0x63, // misc output registers
      (byte)0x5f, (byte)0x4f, (byte)0x50, (byte)0x82, (byte)0x54, (byte)0x80, (byte)0xbf, (byte)0x1f,       // crtc registers 0-7
      (byte)0x00, (byte)0xc1, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,       // crtc registers 8-15
      (byte)0x9c, (byte)0x8e, (byte)0x8f, (byte)0x28, (byte)0x00, (byte)0x96, (byte)0xb9, (byte)0xc2, (byte)0xff, // crtc registers 16-24
      (byte)0x00, (byte)0x17, (byte)0x17, (byte)0x17, (byte)0x17, (byte)0x17, (byte)0x17, (byte)0x17,       // attr registers 0-7
      (byte)0x17, (byte)0x17, (byte)0x17, (byte)0x17, (byte)0x17, (byte)0x17, (byte)0x17, (byte)0x17,       // attr registers 8-15
      (byte)0x01, (byte)0x00, (byte)0x01, (byte)0x00, // attr registers 16-19
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x0f, (byte)0x0f, (byte)0xff, // graphics registers 0-8
    // video parameter table for mode 7
      (byte)0x50, (byte)0x18, (byte)0x10, (byte)0x00, (byte)0x10, // bios data
      (byte)0x00, (byte)0x0f, (byte)0x00, (byte)0x07, // sequencer registers
      (byte)0x66, // misc output registers
      (byte)0x5f, (byte)0x4f, (byte)0x50, (byte)0x82, (byte)0x55, (byte)0x81, (byte)0xbf, (byte)0x1f,       // crtc registers 0-7
      (byte)0x00, (byte)0x4f, (byte)0x0d, (byte)0x0e, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,       // crtc registers 8-15
      (byte)0x9c, (byte)0x8e, (byte)0x8f, (byte)0x28, (byte)0x0f, (byte)0x96, (byte)0xb9, (byte)0xa3, (byte)0xff, // crtc registers 16-24
      (byte)0x00, (byte)0x01, (byte)0x02, (byte)0x03, (byte)0x04, (byte)0x05, (byte)0x14, (byte)0x07,       // attr registers 0-7
      (byte)0x38, (byte)0x39, (byte)0x3a, (byte)0x3b, (byte)0x3c, (byte)0x3d, (byte)0x3e, (byte)0x3f,       // attr registers 8-15
      (byte)0x0c, (byte)0x00, (byte)0x0f, (byte)0x08, // attr registers 16-19
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x10, (byte)0x0a, (byte)0x0f, (byte)0xff, // graphics registers 0-8
    // video parameter table for mode 8
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
    // video parameter table for mode 9
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
    // video parameter table for mode a
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
    // video parameter table for mode b
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
    // video parameter table for mode c
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
    // video parameter table for mode d
      (byte)0x28, (byte)0x18, (byte)0x08, (byte)0x00, (byte)0x20, // bios data
      (byte)0x09, (byte)0x0f, (byte)0x00, (byte)0x02, // sequencer registers
      (byte)0x63, // misc output registers
      (byte)0x2d, (byte)0x27, (byte)0x28, (byte)0x90, (byte)0x2b, (byte)0x80, (byte)0xbf, (byte)0x1f,       // crtc registers 0-7
      (byte)0x00, (byte)0xc0, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,       // crtc registers 8-15
      (byte)0x9c, (byte)0x8e, (byte)0x8f, (byte)0x14, (byte)0x00, (byte)0x96, (byte)0xb9, (byte)0xe3, (byte)0xff, // crtc registers 16-24
      (byte)0x00, (byte)0x01, (byte)0x02, (byte)0x03, (byte)0x04, (byte)0x05, (byte)0x06, (byte)0x07,       // attr registers 0-7
      (byte)0x10, (byte)0x11, (byte)0x12, (byte)0x13, (byte)0x14, (byte)0x15, (byte)0x16, (byte)0x17,       // attr registers 8-15
      (byte)0x01, (byte)0x00, (byte)0x0f, (byte)0x00, // attr registers 16-19
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x05, (byte)0x0f, (byte)0xff, // graphics registers 0-8
    // video parameter table for mode e
      (byte)0x50, (byte)0x18, (byte)0x08, (byte)0x00, (byte)0x40, // bios data
      (byte)0x01, (byte)0x0f, (byte)0x00, (byte)0x02, // sequencer registers
      (byte)0x63, // misc output registers
      (byte)0x5f, (byte)0x4f, (byte)0x50, (byte)0x82, (byte)0x54, (byte)0x80, (byte)0xbf, (byte)0x1f,       // crtc registers 0-7
      (byte)0x00, (byte)0xc0, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,       // crtc registers 8-15
      (byte)0x9c, (byte)0x8e, (byte)0x8f, (byte)0x28, (byte)0x00, (byte)0x96, (byte)0xb9, (byte)0xe3, (byte)0xff, // crtc registers 16-24
      (byte)0x00, (byte)0x01, (byte)0x02, (byte)0x03, (byte)0x04, (byte)0x05, (byte)0x06, (byte)0x07,       // attr registers 0-7
      (byte)0x10, (byte)0x11, (byte)0x12, (byte)0x13, (byte)0x14, (byte)0x15, (byte)0x16, (byte)0x17,       // attr registers 8-15
      (byte)0x01, (byte)0x00, (byte)0x0f, (byte)0x00, // attr registers 16-19
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x05, (byte)0x0f, (byte)0xff, // graphics registers 0-8
    // video parameter table for mode f (64k graphics memory)
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
    // video parameter table for mode 10 (64k graphics memory)
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
    // video parameter table for mode f (>64k graphics memory)
      (byte)0x50, (byte)0x18, (byte)0x0e, (byte)0x00, (byte)0x80, // bios data
      (byte)0x01, (byte)0x0f, (byte)0x00, (byte)0x02, // sequencer registers
      (byte)0xa2, // misc output registers
      (byte)0x5f, (byte)0x4f, (byte)0x50, (byte)0x82, (byte)0x54, (byte)0x80, (byte)0xbf, (byte)0x1f,       // crtc registers 0-7
      (byte)0x00, (byte)0x40, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,       // crtc registers 8-15
      (byte)0x83, (byte)0x85, (byte)0x5d, (byte)0x28, (byte)0x0f, (byte)0x63, (byte)0xba, (byte)0xe3, (byte)0xff, // crtc registers 16-24
      (byte)0x00, (byte)0x08, (byte)0x00, (byte)0x00, (byte)0x18, (byte)0x18, (byte)0x00, (byte)0x00,       // attr registers 0-7
      (byte)0x00, (byte)0x08, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x18, (byte)0x00, (byte)0x00,       // attr registers 8-15
      (byte)0x0b, (byte)0x00, (byte)0x0f, (byte)0x00, // attr registers 16-19
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x05, (byte)0x0f, (byte)0xff, // graphics registers 0-8
    // video parameter table for mode 10 (>64k graphics memory)
      (byte)0x50, (byte)0x18, (byte)0x0e, (byte)0x00, (byte)0x80, // bios data
      (byte)0x01, (byte)0x0f, (byte)0x00, (byte)0x02, // sequencer registers
      (byte)0xa3, // misc output registers
      (byte)0x5f, (byte)0x4f, (byte)0x50, (byte)0x82, (byte)0x54, (byte)0x80, (byte)0xbf, (byte)0x1f,       // crtc registers 0-7
      (byte)0x00, (byte)0x40, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,       // crtc registers 8-15
      (byte)0x83, (byte)0x85, (byte)0x5d, (byte)0x28, (byte)0x0f, (byte)0x63, (byte)0xba, (byte)0xe3, (byte)0xff, // crtc registers 16-24
      (byte)0x00, (byte)0x01, (byte)0x02, (byte)0x03, (byte)0x04, (byte)0x05, (byte)0x14, (byte)0x07,       // attr registers 0-7
      (byte)0x38, (byte)0x39, (byte)0x3a, (byte)0x3b, (byte)0x3c, (byte)0x3d, (byte)0x3e, (byte)0x3f,       // attr registers 8-15
      (byte)0x01, (byte)0x00, (byte)0x0f, (byte)0x00, // attr registers 16-19
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x05, (byte)0x0f, (byte)0xff, // graphics registers 0-8
    // video parameter table for mode 0 (350 lines)
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
    // video parameter table for mode 1 (350 lines)
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
    // video parameter table for mode 2 (350 lines)
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
    // video parameter table for mode 3 (350 lines)
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
    // video parameter table for mode e
      (byte)0x28, (byte)0x18, (byte)0x10, (byte)0x00, (byte)0x08, // bios data
      (byte)0x08, (byte)0x0f, (byte)0x00, (byte)0x07, // sequencer registers
      (byte)0x67, // misc output registers
      (byte)0x2d, (byte)0x27, (byte)0x28, (byte)0x90, (byte)0x2b, (byte)0xa0, (byte)0xbf, (byte)0x1f,       // crtc registers 0-7
      (byte)0x00, (byte)0x4f, (byte)0x0d, (byte)0x0e, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,       // crtc registers 8-15
      (byte)0x9c, (byte)0x8e, (byte)0x8f, (byte)0x14, (byte)0x1f, (byte)0x96, (byte)0xb9, (byte)0xa3, (byte)0xff, // crtc registers 16-24
      (byte)0x00, (byte)0x01, (byte)0x02, (byte)0x03, (byte)0x04, (byte)0x05, (byte)0x14, (byte)0x07,       // attr registers 0-7
      (byte)0x38, (byte)0x39, (byte)0x3a, (byte)0x3b, (byte)0x3c, (byte)0x3d, (byte)0x3e, (byte)0x3f,       // attr registers 8-15
      (byte)0x0c, (byte)0x00, (byte)0x0f, (byte)0x08, // attr registers 16-19
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x10, (byte)0x0e, (byte)0x0f, (byte)0xff, // graphics registers 0-8
    // video parameter table for mode f
      (byte)0x50, (byte)0x18, (byte)0x10, (byte)0x00, (byte)0x10, // bios data
      (byte)0x00, (byte)0x0f, (byte)0x00, (byte)0x07, // sequencer registers
      (byte)0x67, // misc output registers
      (byte)0x5f, (byte)0x4f, (byte)0x50, (byte)0x82, (byte)0x55, (byte)0x81, (byte)0xbf, (byte)0x1f,       // crtc registers 0-7
      (byte)0x00, (byte)0x4f, (byte)0x0d, (byte)0x0e, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,       // crtc registers 8-15
      (byte)0x9c, (byte)0x8e, (byte)0x8f, (byte)0x28, (byte)0x1f, (byte)0x96, (byte)0xb9, (byte)0xa3, (byte)0xff, // crtc registers 16-24
      (byte)0x00, (byte)0x01, (byte)0x02, (byte)0x03, (byte)0x04, (byte)0x05, (byte)0x14, (byte)0x07,       // attr registers 0-7
      (byte)0x38, (byte)0x39, (byte)0x3a, (byte)0x3b, (byte)0x3c, (byte)0x3d, (byte)0x3e, (byte)0x3f,       // attr registers 8-15
      (byte)0x0c, (byte)0x00, (byte)0x0f, (byte)0x08, // attr registers 16-19
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x10, (byte)0x0e, (byte)0x0f, (byte)0xff, // graphics registers 0-8
    // video parameter table for mode 10
      (byte)0x50, (byte)0x18, (byte)0x10, (byte)0x00, (byte)0x10, // bios data
      (byte)0x00, (byte)0x0f, (byte)0x00, (byte)0x07, // sequencer registers
      (byte)0x66, // misc output registers
      (byte)0x5f, (byte)0x4f, (byte)0x50, (byte)0x82, (byte)0x55, (byte)0x81, (byte)0xbf, (byte)0x1f,       // crtc registers 0-7
      (byte)0x00, (byte)0x4f, (byte)0x0d, (byte)0x0e, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,       // crtc registers 8-15
      (byte)0x9c, (byte)0x8e, (byte)0x8f, (byte)0x28, (byte)0x0f, (byte)0x96, (byte)0xb9, (byte)0xa3, (byte)0xff, // crtc registers 16-24
      (byte)0x00, (byte)0x01, (byte)0x02, (byte)0x03, (byte)0x04, (byte)0x05, (byte)0x14, (byte)0x07,       // attr registers 0-7
      (byte)0x38, (byte)0x39, (byte)0x3a, (byte)0x3b, (byte)0x3c, (byte)0x3d, (byte)0x3e, (byte)0x3f,       // attr registers 8-15
      (byte)0x0c, (byte)0x00, (byte)0x0f, (byte)0x08, // attr registers 16-19
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x10, (byte)0x0a, (byte)0x0f, (byte)0xff, // graphics registers 0-8
    // video parameter table for mode 11
      (byte)0x50, (byte)0x1d, (byte)0x10, (byte)0x00, (byte)0xa0, // bios data
      (byte)0x01, (byte)0x0f, (byte)0x00, (byte)0x02, // sequencer registers
      (byte)0xe3, // misc output registers
      (byte)0x5f, (byte)0x4f, (byte)0x50, (byte)0x82, (byte)0x54, (byte)0x80, (byte)0x0b, (byte)0x3e,       // crtc registers 0-7
      (byte)0x00, (byte)0x40, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,       // crtc registers 8-15
      (byte)0xea, (byte)0x8c, (byte)0xdf, (byte)0x28, (byte)0x00, (byte)0xe7, (byte)0x04, (byte)0xc3, (byte)0xff, // crtc registers 16-24
      (byte)0x00, (byte)0x3f, (byte)0x3f, (byte)0x3f, (byte)0x3f, (byte)0x3f, (byte)0x3f, (byte)0x3f,       // attr registers 0-7
      (byte)0x3f, (byte)0x3f, (byte)0x3f, (byte)0x3f, (byte)0x3f, (byte)0x3f, (byte)0x3f, (byte)0x3f,       // attr registers 8-15
      (byte)0x01, (byte)0x00, (byte)0x0f, (byte)0x00, // attr registers 16-19
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x05, (byte)0x0f, (byte)0xff, // graphics registers 0-8
    // video parameter table for mode 12
      (byte)0x50, (byte)0x1d, (byte)0x10, (byte)0x00, (byte)0xa0, // bios data
      (byte)0x01, (byte)0x0f, (byte)0x00, (byte)0x02, // sequencer registers
      (byte)0xe3, // misc output registers
      (byte)0x5f, (byte)0x4f, (byte)0x50, (byte)0x82, (byte)0x54, (byte)0x80, (byte)0x0b, (byte)0x3e,       // crtc registers 0-7
      (byte)0x00, (byte)0x40, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,       // crtc registers 8-15
      (byte)0xea, (byte)0x8c, (byte)0xdf, (byte)0x28, (byte)0x00, (byte)0xe7, (byte)0x04, (byte)0xe3, (byte)0xff, // crtc registers 16-24
      (byte)0x00, (byte)0x01, (byte)0x02, (byte)0x03, (byte)0x04, (byte)0x05, (byte)0x14, (byte)0x07,       // attr registers 0-7
      (byte)0x38, (byte)0x39, (byte)0x3a, (byte)0x3b, (byte)0x3c, (byte)0x3d, (byte)0x3e, (byte)0x3f,       // attr registers 8-15
      (byte)0x01, (byte)0x00, (byte)0x0f, (byte)0x00, // attr registers 16-19
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x05, (byte)0x0f, (byte)0xff, // graphics registers 0-8
    // video parameter table for mode 13
      (byte)0x28, (byte)0x18, (byte)0x08, (byte)0x00, (byte)0x20, // bios data
      (byte)0x01, (byte)0x0f, (byte)0x00, (byte)0x0e, // sequencer registers
      (byte)0x63, // misc output registers
      (byte)0x5f, (byte)0x4f, (byte)0x50, (byte)0x82, (byte)0x54, (byte)0x80, (byte)0xbf, (byte)0x1f,       // crtc registers 0-7
      (byte)0x00, (byte)0x41, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,       // crtc registers 8-15
      (byte)0x9c, (byte)0x8e, (byte)0x8f, (byte)0x28, (byte)0x40, (byte)0x96, (byte)0xb9, (byte)0xa3, (byte)0xff, // crtc registers 16-24
      (byte)0x00, (byte)0x01, (byte)0x02, (byte)0x03, (byte)0x04, (byte)0x05, (byte)0x06, (byte)0x07,       // attr registers 0-7
      (byte)0x08, (byte)0x09, (byte)0x0a, (byte)0x0b, (byte)0x0c, (byte)0x0d, (byte)0x0e, (byte)0x0f,       // attr registers 8-15
      (byte)0x41, (byte)0x00, (byte)0x0f, (byte)0x00, // attr registers 16-19
      (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x40, (byte)0x05, (byte)0x0f, (byte)0xff  // graphics registers 0-8
    };


    static public /*Bit16u*/int INT10_SetupVideoParameterTable(/*PhysPt*/int basepos) {
        for (/*Bitu*/int i=0;i<0x40*0x1d;i++) {
            Memory.phys_writeb((int)(basepos+i),video_parameter_table_vga[i]);
        }
        return (byte)0x40*0x1d;
    }

    static public void INT10_SetupBasicVideoParameterTable() {
        /* video parameter table at F000:F0A4 */
        Memory.RealSetVec(0x1d,Memory.RealMake(0xF000, 0xF0A4));
        for (/*Bit16u*/int i = 0; i < vparams.length; i++) {
            Memory.phys_writeb(0xFF0A4+i,vparams[i]);
        }
    }
}
